include(libweb_generators)
include(accelerated_graphics)

set(SOURCES
    Animations/Animatable.cpp
    Animations/Animation.cpp
    Animations/AnimationEffect.cpp
    Animations/AnimationPlaybackEvent.cpp
    Animations/AnimationTimeline.cpp
    Animations/DocumentTimeline.cpp
    Animations/KeyframeEffect.cpp
    Animations/TimingFunction.cpp
    ARIA/AriaData.cpp
    ARIA/ARIAMixin.cpp
    ARIA/Roles.cpp
    ARIA/RoleType.cpp
    ARIA/StateAndProperties.cpp
    Bindings/AudioConstructor.cpp
    Bindings/HostDefined.cpp
    Bindings/ImageConstructor.cpp
    Bindings/Intrinsics.cpp
    Bindings/LocationConstructor.cpp
    Bindings/MainThreadVM.cpp
    Bindings/OptionConstructor.cpp
    Bindings/PlatformObject.cpp
    Clipboard/Clipboard.cpp
    Crypto/Crypto.cpp
    Crypto/CryptoAlgorithms.cpp
    Crypto/CryptoBindings.cpp
    Crypto/KeyAlgorithms.cpp
    Crypto/CryptoKey.cpp
    Crypto/SubtleCrypto.cpp
    CSS/Angle.cpp
    CSS/AnimationEvent.cpp
    CSS/CalculatedOr.cpp
    CSS/Clip.cpp
    CSS/CSS.cpp
    CSS/CSSAnimation.cpp
    CSS/CSSConditionRule.cpp
    CSS/CSSGroupingRule.cpp
    CSS/CSSImportRule.cpp
    CSS/CSSKeyframeRule.cpp
    CSS/CSSKeyframesRule.cpp
    CSS/CSSFontFaceRule.cpp
    CSS/CSSMediaRule.cpp
    CSS/CSSNumericType.cpp
    CSS/CSSNamespaceRule.cpp
    CSS/CSSRule.cpp
    CSS/CSSRuleList.cpp
    CSS/CSSStyleDeclaration.cpp
    CSS/CSSStyleRule.cpp
    CSS/CSSStyleSheet.cpp
    CSS/CSSSupportsRule.cpp
    CSS/CSSTransition.cpp
    CSS/Display.cpp
    CSS/EdgeRect.cpp
    CSS/FontFace.cpp
    CSS/FontFaceSet.cpp
    CSS/Flex.cpp
    CSS/Frequency.cpp
    CSS/GridTrackPlacement.cpp
    CSS/GridTrackSize.cpp
    CSS/Length.cpp
    CSS/LengthBox.cpp
    CSS/MediaList.cpp
    CSS/MediaQuery.cpp
    CSS/MediaQueryList.cpp
    CSS/MediaQueryListEvent.cpp
    CSS/Parser/Block.cpp
    CSS/Parser/ComponentValue.cpp
    CSS/Parser/Declaration.cpp
    CSS/Parser/DeclarationOrAtRule.cpp
    CSS/Parser/Function.cpp
    CSS/Parser/GradientParsing.cpp
    CSS/Parser/Helpers.cpp
    CSS/Parser/MediaParsing.cpp
    CSS/Parser/Parser.cpp
    CSS/Parser/ParsingContext.cpp
    CSS/Parser/Rule.cpp
    CSS/Parser/SelectorParsing.cpp
    CSS/Parser/Token.cpp
    CSS/Parser/Tokenizer.cpp
    CSS/ParsedFontFace.cpp
    CSS/PercentageOr.cpp
    CSS/PreferredColorScheme.cpp
    CSS/Ratio.cpp
    CSS/Resolution.cpp
    CSS/ResolvedCSSStyleDeclaration.cpp
    CSS/Screen.cpp
    CSS/ScreenOrientation.cpp
    CSS/Selector.cpp
    CSS/SelectorEngine.cpp
    CSS/Serialize.cpp
    CSS/Size.cpp
    CSS/StyleComputer.cpp
    CSS/StyleInvalidation.cpp
    CSS/StyleProperties.cpp
    CSS/StyleProperty.cpp
    CSS/StyleSheet.cpp
    CSS/StyleSheetList.cpp
    CSS/StyleValue.cpp
    CSS/StyleValues/AngleStyleValue.cpp
    CSS/StyleValues/BackgroundRepeatStyleValue.cpp
    CSS/StyleValues/BackgroundSizeStyleValue.cpp
    CSS/StyleValues/BasicShapeStyleValue.cpp
    CSS/StyleValues/BorderRadiusStyleValue.cpp
    CSS/StyleValues/CalculatedStyleValue.cpp
    CSS/StyleValues/ColorStyleValue.cpp
    CSS/StyleValues/ConicGradientStyleValue.cpp
    CSS/StyleValues/ContentStyleValue.cpp
    CSS/StyleValues/DisplayStyleValue.cpp
    CSS/StyleValues/EasingStyleValue.cpp
    CSS/StyleValues/EdgeStyleValue.cpp
    CSS/StyleValues/FilterValueListStyleValue.cpp
    CSS/StyleValues/GridAutoFlowStyleValue.cpp
    CSS/StyleValues/GridTemplateAreaStyleValue.cpp
    CSS/StyleValues/GridTrackPlacementStyleValue.cpp
    CSS/StyleValues/GridTrackSizeListStyleValue.cpp
    CSS/StyleValues/IdentifierStyleValue.cpp
    CSS/StyleValues/ImageStyleValue.cpp
    CSS/StyleValues/IntegerStyleValue.cpp
    CSS/StyleValues/LengthStyleValue.cpp
    CSS/StyleValues/LinearGradientStyleValue.cpp
    CSS/StyleValues/MathDepthStyleValue.cpp
    CSS/StyleValues/NumberStyleValue.cpp
    CSS/StyleValues/PositionStyleValue.cpp
    CSS/StyleValues/RadialGradientStyleValue.cpp
    CSS/StyleValues/RectStyleValue.cpp
    CSS/StyleValues/ShadowStyleValue.cpp
    CSS/StyleValues/ShorthandStyleValue.cpp
    CSS/StyleValues/StyleValueList.cpp
    CSS/StyleValues/TransformationStyleValue.cpp
    CSS/StyleValues/TransitionStyleValue.cpp
    CSS/StyleValues/UnresolvedStyleValue.cpp
    CSS/Supports.cpp
    CSS/SyntaxHighlighter/SyntaxHighlighter.cpp
    CSS/SystemColor.cpp
    CSS/Time.cpp
    CSS/Transformation.cpp
    CSS/VisualViewport.cpp
    Cookie/Cookie.cpp
    Cookie/ParsedCookie.cpp
    DOM/AbortController.cpp
    DOM/AbortSignal.cpp
    DOM/AbstractRange.cpp
    DOM/AccessibilityTreeNode.cpp
    DOM/AdoptedStyleSheets.cpp
    DOM/Attr.cpp
    DOM/CDATASection.cpp
    DOM/CharacterData.cpp
    DOM/Comment.cpp
    DOM/CustomEvent.cpp
    DOM/DOMEventListener.cpp
    DOM/DOMImplementation.cpp
    DOM/DOMTokenList.cpp
    DOM/Document.cpp
    DOM/DocumentFragment.cpp
    DOM/DocumentLoadEventDelayer.cpp
    DOM/DocumentLoading.cpp
    DOM/DocumentObserver.cpp
    DOM/DocumentType.cpp
    DOM/Element.cpp
    DOM/ElementFactory.cpp
    DOM/Event.cpp
    DOM/EventDispatcher.cpp
    DOM/EventTarget.cpp
    DOM/HTMLCollection.cpp
    DOM/HTMLFormControlsCollection.cpp
    DOM/IDLEventListener.cpp
    DOM/LiveNodeList.cpp
    DOM/MutationObserver.cpp
    DOM/MutationRecord.cpp
    DOM/MutationType.cpp
    DOM/NamedNodeMap.cpp
    DOM/Node.cpp
    DOM/NodeFilter.cpp
    DOM/NodeIterator.cpp
    DOM/NodeList.cpp
    DOM/NodeOperations.cpp
    DOM/ParentNode.cpp
    DOM/Position.cpp
    DOM/ProcessingInstruction.cpp
    DOM/QualifiedName.cpp
    DOM/RadioNodeList.cpp
    DOM/Range.cpp
    DOM/ShadowRoot.cpp
    DOM/Slot.cpp
    DOM/Slottable.cpp
    DOM/StaticNodeList.cpp
    DOM/StaticRange.cpp
    DOM/StyleElementUtils.cpp
    DOM/Text.cpp
    DOM/TreeWalker.cpp
    DOM/XMLDocument.cpp
    DOMParsing/InnerHTML.cpp
    DOMParsing/XMLSerializer.cpp
    DOMURL/DOMURL.cpp
    DOMURL/URLSearchParams.cpp
    DOMURL/URLSearchParamsIterator.cpp
    Dump.cpp
    Encoding/TextDecoder.cpp
    Encoding/TextEncoder.cpp
    Fetch/Body.cpp
    Fetch/BodyInit.cpp
    Fetch/Enums.cpp
    Fetch/Fetching/Checks.cpp
    Fetch/Fetching/FetchedDataReceiver.cpp
    Fetch/Fetching/Fetching.cpp
    Fetch/Fetching/PendingResponse.cpp
    Fetch/Fetching/RefCountedFlag.cpp
    Fetch/FetchMethod.cpp
    Fetch/Headers.cpp
    Fetch/HeadersIterator.cpp
    Fetch/Infrastructure/ConnectionTimingInfo.cpp
    Fetch/Infrastructure/FetchAlgorithms.cpp
    Fetch/Infrastructure/FetchController.cpp
    Fetch/Infrastructure/FetchParams.cpp
    Fetch/Infrastructure/FetchTimingInfo.cpp
    Fetch/Infrastructure/HTTP.cpp
    Fetch/Infrastructure/HTTP/Bodies.cpp
    Fetch/Infrastructure/HTTP/Headers.cpp
    Fetch/Infrastructure/HTTP/Methods.cpp
    Fetch/Infrastructure/HTTP/Requests.cpp
    Fetch/Infrastructure/HTTP/Responses.cpp
    Fetch/Infrastructure/HTTP/Statuses.cpp
    Fetch/Infrastructure/IncrementalReadLoopReadRequest.cpp
    Fetch/Infrastructure/MimeTypeBlocking.cpp
    Fetch/Infrastructure/NetworkPartitionKey.cpp
    Fetch/Infrastructure/NoSniffBlocking.cpp
    Fetch/Infrastructure/PortBlocking.cpp
    Fetch/Infrastructure/Task.cpp
    Fetch/Infrastructure/URL.cpp
    Fetch/Request.cpp
    Fetch/Response.cpp
    FileAPI/Blob.cpp
    FileAPI/BlobURLStore.cpp
    FileAPI/File.cpp
    FileAPI/FileList.cpp
    FileAPI/FileReader.cpp
    Geometry/DOMMatrix.cpp
    Geometry/DOMMatrixReadOnly.cpp
    Geometry/DOMPoint.cpp
    Geometry/DOMPointReadOnly.cpp
    Geometry/DOMQuad.cpp
    Geometry/DOMRect.cpp
    Geometry/DOMRectList.cpp
    Geometry/DOMRectReadOnly.cpp
    HTML/AnimatedBitmapDecodedImageData.cpp
    HTML/AttributeNames.cpp
    HTML/AudioTrack.cpp
    HTML/AudioTrackList.cpp
    HTML/BrowsingContext.cpp
    HTML/BrowsingContextGroup.cpp
    HTML/Canvas/CanvasDrawImage.cpp
    HTML/Canvas/CanvasPath.cpp
    HTML/Canvas/CanvasState.cpp
    HTML/CanvasGradient.cpp
    HTML/CanvasPattern.cpp
    HTML/CanvasRenderingContext2D.cpp
    HTML/CloseEvent.cpp
    HTML/CORSSettingAttribute.cpp
    HTML/CrossOrigin/AbstractOperations.cpp
    HTML/CrossOrigin/Reporting.cpp
    HTML/CustomElements/CustomElementDefinition.cpp
    HTML/CustomElements/CustomElementName.cpp
    HTML/CustomElements/CustomElementReactionNames.cpp
    HTML/CustomElements/CustomElementRegistry.cpp
    HTML/Dates.cpp
    HTML/DecodedImageData.cpp
    HTML/DocumentState.cpp
    HTML/DOMParser.cpp
    HTML/DOMStringMap.cpp
    HTML/DataTransfer.cpp
    HTML/ErrorEvent.cpp
    HTML/EventHandler.cpp
    HTML/EventSource.cpp
    HTML/EventLoop/EventLoop.cpp
    HTML/EventLoop/Task.cpp
    HTML/EventLoop/TaskQueue.cpp
    HTML/EventNames.cpp
    HTML/FileFilter.cpp
    HTML/Focus.cpp
    HTML/FormAssociatedElement.cpp
    HTML/FormControlInfrastructure.cpp
    HTML/FormDataEvent.cpp
    HTML/GlobalEventHandlers.cpp
    HTML/HashChangeEvent.cpp
    HTML/History.cpp
    HTML/HTMLAllCollection.cpp
    HTML/HTMLAnchorElement.cpp
    HTML/HTMLAreaElement.cpp
    HTML/HTMLAudioElement.cpp
    HTML/HTMLBRElement.cpp
    HTML/HTMLBaseElement.cpp
    HTML/HTMLBodyElement.cpp
    HTML/HTMLButtonElement.cpp
    HTML/HTMLCanvasElement.cpp
    HTML/HTMLDListElement.cpp
    HTML/HTMLDataElement.cpp
    HTML/HTMLDataListElement.cpp
    HTML/HTMLDetailsElement.cpp
    HTML/HTMLDialogElement.cpp
    HTML/HTMLDirectoryElement.cpp
    HTML/HTMLDivElement.cpp
    HTML/HTMLDocument.cpp
    HTML/HTMLElement.cpp
    HTML/HTMLEmbedElement.cpp
    HTML/HTMLFieldSetElement.cpp
    HTML/HTMLFontElement.cpp
    HTML/HTMLFormElement.cpp
    HTML/HTMLFrameElement.cpp
    HTML/HTMLFrameSetElement.cpp
    HTML/HTMLHRElement.cpp
    HTML/HTMLHeadElement.cpp
    HTML/HTMLHeadingElement.cpp
    HTML/HTMLHtmlElement.cpp
    HTML/HTMLHyperlinkElementUtils.cpp
    HTML/HTMLIFrameElement.cpp
    HTML/HTMLImageElement.cpp
    HTML/HTMLInputElement.cpp
    HTML/HTMLLIElement.cpp
    HTML/HTMLLabelElement.cpp
    HTML/HTMLLegendElement.cpp
    HTML/HTMLLinkElement.cpp
    HTML/HTMLMapElement.cpp
    HTML/HTMLMarqueeElement.cpp
    HTML/HTMLMediaElement.cpp
    HTML/HTMLMenuElement.cpp
    HTML/HTMLMetaElement.cpp
    HTML/HTMLMeterElement.cpp
    HTML/HTMLModElement.cpp
    HTML/HTMLOListElement.cpp
    HTML/HTMLObjectElement.cpp
    HTML/HTMLOptGroupElement.cpp
    HTML/HTMLOptionElement.cpp
    HTML/HTMLOptionsCollection.cpp
    HTML/HTMLOutputElement.cpp
    HTML/HTMLParagraphElement.cpp
    HTML/HTMLParamElement.cpp
    HTML/HTMLPictureElement.cpp
    HTML/HTMLPreElement.cpp
    HTML/HTMLProgressElement.cpp
    HTML/HTMLQuoteElement.cpp
    HTML/HTMLScriptElement.cpp
    HTML/HTMLSelectElement.cpp
    HTML/HTMLSlotElement.cpp
    HTML/HTMLSourceElement.cpp
    HTML/HTMLSpanElement.cpp
    HTML/HTMLStyleElement.cpp
    HTML/HTMLSummaryElement.cpp
    HTML/HTMLTableCaptionElement.cpp
    HTML/HTMLTableCellElement.cpp
    HTML/HTMLTableColElement.cpp
    HTML/HTMLTableElement.cpp
    HTML/HTMLTableRowElement.cpp
    HTML/HTMLTableSectionElement.cpp
    HTML/HTMLTemplateElement.cpp
    HTML/HTMLTextAreaElement.cpp
    HTML/HTMLTimeElement.cpp
    HTML/HTMLTitleElement.cpp
    HTML/HTMLTrackElement.cpp
    HTML/HTMLUListElement.cpp
    HTML/HTMLUnknownElement.cpp
    HTML/HTMLVideoElement.cpp
    HTML/ImageBitmap.cpp
    HTML/ImageData.cpp
    HTML/ImageRequest.cpp
    HTML/ListOfAvailableImages.cpp
    HTML/Location.cpp
    HTML/MediaError.cpp
    HTML/MessageChannel.cpp
    HTML/MessageEvent.cpp
    HTML/MessagePort.cpp
    HTML/MimeType.cpp
    HTML/MimeTypeArray.cpp
    HTML/Navigable.cpp
    HTML/NavigableContainer.cpp
    HTML/NavigateEvent.cpp
    HTML/Navigation.cpp
    HTML/NavigationDestination.cpp
    HTML/NavigationCurrentEntryChangeEvent.cpp
    HTML/NavigationHistoryEntry.cpp
    HTML/NavigationParams.cpp
    HTML/NavigationTransition.cpp
    HTML/Navigator.cpp
    HTML/NavigatorBeacon.cpp
    HTML/NavigatorID.cpp
    HTML/Numbers.cpp
    HTML/Origin.cpp
    HTML/PageTransitionEvent.cpp
    HTML/PolicyContainers.cpp
    HTML/PopStateEvent.cpp
    HTML/Parser/Entities.cpp
    HTML/Parser/HTMLEncodingDetection.cpp
    HTML/Parser/HTMLParser.cpp
    HTML/Parser/HTMLToken.cpp
    HTML/Parser/HTMLTokenizer.cpp
    HTML/Parser/ListOfActiveFormattingElements.cpp
    HTML/Parser/StackOfOpenElements.cpp
    HTML/Path2D.cpp
    HTML/Plugin.cpp
    HTML/PluginArray.cpp
    HTML/PotentialCORSRequest.cpp
    HTML/PromiseRejectionEvent.cpp
    HTML/Scripting/ClassicScript.cpp
    HTML/Scripting/Environments.cpp
    HTML/Scripting/EnvironmentSettingsSnapshot.cpp
    HTML/Scripting/ExceptionReporter.cpp
    HTML/Scripting/Fetching.cpp
    HTML/Scripting/ImportMap.cpp
    HTML/Scripting/ImportMapParseResult.cpp
    HTML/Scripting/ModuleMap.cpp
    HTML/Scripting/ModuleScript.cpp
    HTML/Scripting/Script.cpp
    HTML/Scripting/TemporaryExecutionContext.cpp
    HTML/Scripting/WindowEnvironmentSettingsObject.cpp
    HTML/Scripting/WorkerEnvironmentSettingsObject.cpp
    HTML/Scripting/SerializedEnvironmentSettingsObject.cpp
    HTML/SelectedFile.cpp
    HTML/SelectItem.cpp
    HTML/SessionHistoryEntry.cpp
    HTML/SessionHistoryTraversalQueue.cpp
    HTML/SharedImageRequest.cpp
    HTML/SourceSet.cpp
    HTML/Storage.cpp
    HTML/StructuredSerialize.cpp
    HTML/SubmitEvent.cpp
    HTML/SyntaxHighlighter/SyntaxHighlighter.cpp
    HTML/TagNames.cpp
    HTML/TextMetrics.cpp
    HTML/Timer.cpp
    HTML/TimeRanges.cpp
    HTML/ToggleEvent.cpp
    HTML/TokenizedFeatures.cpp
    HTML/TrackEvent.cpp
    HTML/TraversableNavigable.cpp
    HTML/UserActivation.cpp
    HTML/VideoTrack.cpp
    HTML/VideoTrackList.cpp
    HTML/WebViewHints.cpp
    HTML/Window.cpp
    HTML/WindowEventHandlers.cpp
    HTML/WindowOrWorkerGlobalScope.cpp
    HTML/WindowProxy.cpp
    HTML/Worker.cpp
    HTML/WorkerAgent.cpp
    HTML/WorkerDebugConsoleClient.cpp
    HTML/WorkerGlobalScope.cpp
    HTML/WorkerLocation.cpp
    HTML/WorkerNavigator.cpp
    HTML/ValidityState.cpp
    HighResolutionTime/Performance.cpp
    HighResolutionTime/TimeOrigin.cpp
    Infra/Base64.cpp
    Infra/ByteSequences.cpp
    Infra/JSON.cpp
    Infra/Strings.cpp
    IndexedDB/IDBFactory.cpp
    IndexedDB/IDBOpenDBRequest.cpp
    IndexedDB/IDBRequest.cpp
    Internals/Inspector.cpp
    Internals/InternalAnimationTimeline.cpp
    Internals/Internals.cpp
    IntersectionObserver/IntersectionObserver.cpp
    IntersectionObserver/IntersectionObserverEntry.cpp
    Layout/AudioBox.cpp
    Layout/AvailableSpace.cpp
    Layout/BlockContainer.cpp
    Layout/BlockFormattingContext.cpp
    Layout/Box.cpp
    Layout/BoxModelMetrics.cpp
    Layout/BreakNode.cpp
    Layout/ButtonBox.cpp
    Layout/CanvasBox.cpp
    Layout/CheckBox.cpp
    Layout/FlexFormattingContext.cpp
    Layout/FormattingContext.cpp
    Layout/FrameBox.cpp
    Layout/GridFormattingContext.cpp
    Layout/ImageBox.cpp
    Layout/ImageProvider.cpp
    Layout/Viewport.cpp
    Layout/InlineFormattingContext.cpp
    Layout/InlineLevelIterator.cpp
    Layout/InlineNode.cpp
    Layout/Label.cpp
    Layout/LabelableNode.cpp
    Layout/LayoutState.cpp
    Layout/LineBox.cpp
    Layout/LineBoxFragment.cpp
    Layout/LineBuilder.cpp
    Layout/ListItemBox.cpp
    Layout/ListItemMarkerBox.cpp
    Layout/Node.cpp
    Layout/RadioButton.cpp
    Layout/ReplacedBox.cpp
    Layout/SVGBox.cpp
    Layout/SVGFormattingContext.cpp
    Layout/SVGForeignObjectBox.cpp
    Layout/SVGGeometryBox.cpp
    Layout/SVGGraphicsBox.cpp
    Layout/SVGSVGBox.cpp
    Layout/SVGMaskBox.cpp
    Layout/SVGClipBox.cpp
    Layout/SVGTextBox.cpp
    Layout/SVGTextPathBox.cpp
    Layout/TableFormattingContext.cpp
    Layout/TableGrid.cpp
    Layout/TableWrapper.cpp
    Layout/TextNode.cpp
    Layout/TreeBuilder.cpp
    Layout/VideoBox.cpp
    Loader/ContentFilter.cpp
    Loader/FileRequest.cpp
    Loader/GeneratedPagesLoader.cpp
    Loader/LoadRequest.cpp
    Loader/ProxyMappings.cpp
    Loader/Resource.cpp
    Loader/ResourceLoader.cpp
    MathML/MathMLElement.cpp
    MathML/TagNames.cpp
    MimeSniff/MimeType.cpp
    MimeSniff/Resource.cpp
    MixedContent/AbstractOperations.cpp
    Namespace.cpp
    NavigationTiming/EntryNames.cpp
    NavigationTiming/PerformanceTiming.cpp
    Page/EditEventHandler.cpp
    Page/EventHandler.cpp
    Page/InputEvent.cpp
    Page/Page.cpp
    Painting/AffineCommandExecutorCPU.cpp
    Painting/AudioPaintable.cpp
    Painting/BackgroundPainting.cpp
    Painting/BorderRadiiData.cpp
    Painting/BorderPainting.cpp
    Painting/BorderRadiusCornerClipper.cpp
    Painting/BordersData.cpp
    Painting/ButtonPaintable.cpp
    Painting/CanvasPaintable.cpp
    Painting/Command.cpp
    Painting/CommandExecutorCPU.cpp
    Painting/CommandList.cpp
    Painting/CheckBoxPaintable.cpp
    Painting/ClippableAndScrollable.cpp
    Painting/GradientPainting.cpp
    Painting/FilterPainting.cpp
    Painting/ImagePaintable.cpp
    Painting/InlinePaintable.cpp
    Painting/LabelablePaintable.cpp
    Painting/MarkerPaintable.cpp
    Painting/MediaPaintable.cpp
    Painting/NestedBrowsingContextPaintable.cpp
    Painting/PaintContext.cpp
    Painting/Paintable.cpp
    Painting/PaintableBox.cpp
    Painting/PaintableFragment.cpp
    Painting/RadioButtonPaintable.cpp
    Painting/RecordingPainter.cpp
    Painting/SVGForeignObjectPaintable.cpp
    Painting/SVGPathPaintable.cpp
    Painting/SVGGraphicsPaintable.cpp
    Painting/SVGMaskPaintable.cpp
    Painting/SVGMaskable.cpp
    Painting/SVGClipPaintable.cpp
    Painting/SVGPaintable.cpp
    Painting/SVGSVGPaintable.cpp
    Painting/ShadowPainting.cpp
    Painting/StackingContext.cpp
    Painting/TableBordersPainting.cpp
    Painting/TextPaintable.cpp
    Painting/VideoPaintable.cpp
    Painting/ViewportPaintable.cpp
    PerformanceTimeline/EntryTypes.cpp
    PerformanceTimeline/PerformanceEntry.cpp
    PerformanceTimeline/PerformanceObserver.cpp
    PerformanceTimeline/PerformanceObserverEntryList.cpp
    PermissionsPolicy/AutoplayAllowlist.cpp
    PixelUnits.cpp
    Platform/AudioCodecPlugin.cpp
    Platform/AudioCodecPluginAgnostic.cpp
    Platform/EventLoopPlugin.cpp
    Platform/EventLoopPluginSerenity.cpp
    Platform/FontPlugin.cpp
    Platform/ImageCodecPlugin.cpp
    Platform/Timer.cpp
    Platform/TimerSerenity.cpp
    ReferrerPolicy/AbstractOperations.cpp
    ReferrerPolicy/ReferrerPolicy.cpp
    RequestIdleCallback/IdleDeadline.cpp
    ResizeObserver/ResizeObservation.cpp
    ResizeObserver/ResizeObserver.cpp
    ResizeObserver/ResizeObserverEntry.cpp
    ResizeObserver/ResizeObserverSize.cpp
    SecureContexts/AbstractOperations.cpp
    SRI/SRI.cpp
    Streams/AbstractOperations.cpp
    Streams/ByteLengthQueuingStrategy.cpp
    Streams/CountQueuingStrategy.cpp
    Streams/ReadableByteStreamController.cpp
    Streams/ReadableStream.cpp
    Streams/ReadableStreamBYOBReader.cpp
    Streams/ReadableStreamBYOBRequest.cpp
    Streams/ReadableStreamDefaultController.cpp
    Streams/ReadableStreamDefaultReader.cpp
    Streams/ReadableStreamGenericReader.cpp
    Streams/Transformer.cpp
    Streams/TransformStream.cpp
    Streams/TransformStreamDefaultController.cpp
    Streams/UnderlyingSink.cpp
    Streams/UnderlyingSource.cpp
    Streams/WritableStream.cpp
    Streams/WritableStreamDefaultController.cpp
    Streams/WritableStreamDefaultWriter.cpp
    SVG/AttributeNames.cpp
    SVG/AttributeParser.cpp
    SVG/SVGAnimatedLength.cpp
    SVG/SVGAnimatedNumber.cpp
    SVG/SVGAnimatedRect.cpp
    SVG/SVGAnimatedString.cpp
    SVG/SVGAnimatedTransformList.cpp
    SVG/SVGClipPathElement.cpp
    SVG/SVGDecodedImageData.cpp
    SVG/SVGDefsElement.cpp
    SVG/SVGDescElement.cpp
    SVG/SVGElement.cpp
    SVG/SVGGElement.cpp
    SVG/SVGGeometryElement.cpp
    SVG/SVGGraphicsElement.cpp
    SVG/SVGGradientElement.cpp
    SVG/SVGPathElement.cpp
    SVG/SVGCircleElement.cpp
    SVG/SVGEllipseElement.cpp
    SVG/SVGForeignObjectElement.cpp
    SVG/SVGLength.cpp
    SVG/SVGLineElement.cpp
    SVG/SVGLinearGradientElement.cpp
    SVG/SVGMaskElement.cpp
    SVG/SVGPolygonElement.cpp
    SVG/SVGPolylineElement.cpp
    SVG/SVGRectElement.cpp
    SVG/SVGRadialGradientElement.cpp
    SVG/SVGScriptElement.cpp
    SVG/SVGSVGElement.cpp
    SVG/SVGStopElement.cpp
    SVG/SVGStyleElement.cpp
    SVG/SVGSymbolElement.cpp
    SVG/SVGTextContentElement.cpp
    SVG/SVGTextElement.cpp
    SVG/SVGTextPathElement.cpp
    SVG/SVGTextPositioningElement.cpp
    SVG/SVGTitleElement.cpp
    SVG/SVGTransform.cpp
    SVG/SVGTransformList.cpp
    SVG/SVGTSpanElement.cpp
    SVG/SVGUseElement.cpp
    SVG/TagNames.cpp
    SVG/ViewBox.cpp
    Selection/Selection.cpp
    UIEvents/EventNames.cpp
    UIEvents/FocusEvent.cpp
    UIEvents/KeyboardEvent.cpp
    UIEvents/MouseEvent.cpp
    UIEvents/PointerEvent.cpp
    UIEvents/UIEvent.cpp
    UIEvents/WheelEvent.cpp
    UserTiming/PerformanceMark.cpp
    UserTiming/PerformanceMeasure.cpp
    WebAssembly/Instance.cpp
    WebAssembly/Memory.cpp
    WebAssembly/Module.cpp
    WebAssembly/Table.cpp
    WebAssembly/WebAssembly.cpp
    WebAudio/AudioBuffer.cpp
    WebAudio/AudioContext.cpp
    WebAudio/AudioNode.cpp
    WebAudio/AudioParam.cpp
    WebAudio/AudioScheduledSourceNode.cpp
    WebAudio/BaseAudioContext.cpp
    WebAudio/DynamicsCompressorNode.cpp
    WebAudio/GainNode.cpp
    WebAudio/OfflineAudioContext.cpp
    WebAudio/OscillatorNode.cpp
    WebAudio/PeriodicWave.cpp
    WebDriver/Capabilities.cpp
    WebDriver/Client.cpp
    WebDriver/Contexts.cpp
    WebDriver/ElementLocationStrategies.cpp
    WebDriver/Error.cpp
    WebDriver/ExecuteScript.cpp
    WebDriver/Response.cpp
    WebDriver/Screenshot.cpp
    WebDriver/TimeoutsConfiguration.cpp
    WebGL/EventNames.cpp
    WebGL/OpenGLContext.cpp
    WebGL/WebGLContextAttributes.cpp
    WebGL/WebGLContextEvent.cpp
    WebGL/WebGLRenderingContext.cpp
    WebGL/WebGLRenderingContextBase.cpp
    WebIDL/AbstractOperations.cpp
    WebIDL/Buffers.cpp
    WebIDL/CallbackType.cpp
    WebIDL/DOMException.cpp
    WebIDL/ObservableArray.cpp
    WebIDL/OverloadResolution.cpp
    WebIDL/Promise.cpp
    WebIDL/Tracing.cpp
    WebSockets/WebSocket.cpp
    XHR/EventNames.cpp
    XHR/FormData.cpp
    XHR/FormDataIterator.cpp
    XHR/ProgressEvent.cpp
    XHR/XMLHttpRequest.cpp
    XHR/XMLHttpRequestEventTarget.cpp
    XHR/XMLHttpRequestUpload.cpp
    XML/XMLDocumentBuilder.cpp
    XLink/AttributeNames.cpp
    Worker/WebWorkerClient.cpp
)

compile_ipc(Worker/WebWorkerClient.ipc Worker/WebWorkerClientEndpoint.h)
compile_ipc(Worker/WebWorkerServer.ipc Worker/WebWorkerServerEndpoint.h)

invoke_generator(
        "AriaRoles.cpp"
        Lagom::GenerateAriaRoles
        "${CMAKE_CURRENT_SOURCE_DIR}/ARIA/AriaRoles.json"
        "ARIA/AriaRoles.h"
        "ARIA/AriaRoles.cpp"
        arguments -j "${CMAKE_CURRENT_SOURCE_DIR}/ARIA/AriaRoles.json"
)

generate_css_implementation()

set(GENERATED_SOURCES
    ARIA/AriaRoles.cpp
    CSS/DefaultStyleSheetSource.cpp
    CSS/EasingFunctions.cpp
    CSS/Enums.cpp
    CSS/MathFunctions.cpp
    CSS/MediaFeatureID.cpp
    CSS/PropertyID.cpp
    CSS/PseudoClass.cpp
    CSS/QuirksModeStyleSheetSource.cpp
    CSS/TransformFunctions.cpp
    CSS/ValueID.cpp
    MathML/MathMLStyleSheetSource.cpp
    SVG/SVGStyleSheetSource.cpp
    Worker/WebWorkerClientEndpoint.h
    Worker/WebWorkerServerEndpoint.h
)

serenity_lib(LibWeb web)

target_link_libraries(LibWeb PRIVATE LibCore LibCrypto LibJS LibHTTP LibGfx LibIPC LibLocale LibRegex LibSyntax LibTextCodec LibUnicode LibAudio LibVideo LibWasm LibXML LibIDL LibURL LibTLS)

if (HAS_ACCELERATED_GRAPHICS)
    target_link_libraries(LibWeb PRIVATE ${ACCEL_GFX_LIBS})
    target_sources(LibWeb PRIVATE Painting/CommandExecutorGPU.cpp)
    target_link_libraries(LibWeb PRIVATE LibAccelGfx)
    target_compile_definitions(LibWeb PRIVATE HAS_ACCELERATED_GRAPHICS)
endif()

generate_js_bindings(LibWeb)

# Note: If you're looking for the calls to "libweb_js_bindings()",
# they have been moved to "idl_files.cmake"
